The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Build.PL 16
Changes 013
META.yml 2831
Makefile.PL 811
README 11
SIGNATURE 1717
lib/Crypt/Eksblowfish/Bcrypt.pm 23
lib/Crypt/Eksblowfish/Blowfish.pm 23
lib/Crypt/Eksblowfish/Family.pm 23
lib/Crypt/Eksblowfish/Subkeyed.pm 23
lib/Crypt/Eksblowfish/Uklblowfish.pm 23
lib/Crypt/Eksblowfish.pm 23
lib/Crypt/Eksblowfish.xs 55
typemap 12
14 files changed (This is a version diff) 73104
@@ -1,3 +1,4 @@
+{ use 5.006; }
 use warnings;
 use strict;
 
@@ -10,6 +11,10 @@ Module::Build->new(
 		"Solar Designer (solar at openwall.com)",
 		"Andrew Main (Zefram) <zefram\@fysh.org>",
 	],
+	configure_requires => {
+		"Module::Build" => 0,
+		"perl" => "5.006",
+	},
 	build_requires => {
 		"ExtUtils::CBuilder" => "0.15",
 		"Module::Build" => 0,
@@ -35,4 +40,4 @@ Module::Build->new(
 	sign => 1,
 )->create_build_script;
 
-exit 0;
+1;
@@ -1,3 +1,16 @@
+version 0.008; 2010-03-11
+
+  * bugfix: avoid memory leak when returning block to Perl space
+
+  * check for required Perl version at runtime
+
+  * in XS, avoid using "class" as a variable name, for compatibility
+    with C++ compilers
+
+  * in Build.PL, explicitly declare configure-time requirements
+
+  * remove bogus "exit 0" from Build.PL
+
 version 0.007; 2009-04-22
 
   * in XS code, use the correct "PREINIT:" instead of "INIT:" to introduce
@@ -1,23 +1,8 @@
 ---
-name: Crypt-Eksblowfish
-version: 0.007
+abstract: 'the Eksblowfish block cipher'
 author:
-  - Solar Designer (solar at openwall.com)
+  - 'Solar Designer (solar at openwall.com)'
   - 'Andrew Main (Zefram) <zefram@fysh.org>'
-abstract: the Eksblowfish block cipher
-license: perl
-resources:
-  license: http://dev.perl.org/licenses/
-requires:
-  Carp: 0
-  Class::Mix: 0.001
-  Exporter: 0
-  MIME::Base64: 2.21
-  XSLoader: 0
-  parent: 0
-  perl: 5.006
-  strict: 0
-  warnings: 0
 build_requires:
   ExtUtils::CBuilder: 0.15
   Module::Build: 0
@@ -25,28 +10,46 @@ build_requires:
   perl: 5.006
   strict: 0
   warnings: 0
+configure_requires:
+  Module::Build: 0
+  perl: 5.006
+distribution_type: module
 dynamic_config: 0
+generated_by: 'Module::Build version 0.3603'
+license: perl
+meta-spec:
+  url: http://module-build.sourceforge.net/META-spec-v1.4.html
+  version: 1.4
+name: Crypt-Eksblowfish
 provides:
   Crypt::Eksblowfish:
     file: lib/Crypt/Eksblowfish.pm
-    version: 0.007
+    version: 0.008
   Crypt::Eksblowfish::Bcrypt:
     file: lib/Crypt/Eksblowfish/Bcrypt.pm
-    version: 0.007
+    version: 0.008
   Crypt::Eksblowfish::Blowfish:
     file: lib/Crypt/Eksblowfish/Blowfish.pm
-    version: 0.007
+    version: 0.008
   Crypt::Eksblowfish::Family:
     file: lib/Crypt/Eksblowfish/Family.pm
-    version: 0.007
+    version: 0.008
   Crypt::Eksblowfish::Subkeyed:
     file: lib/Crypt/Eksblowfish/Subkeyed.pm
-    version: 0.007
+    version: 0.008
   Crypt::Eksblowfish::Uklblowfish:
     file: lib/Crypt/Eksblowfish/Uklblowfish.pm
-    version: 0.007
-generated_by: Module::Build version 0.31012
-meta-spec:
-  url: http://module-build.sourceforge.net/META-spec-v1.2.html
-  version: 1.2
-distribution_type: module
+    version: 0.008
+requires:
+  Carp: 0
+  Class::Mix: 0.001
+  Exporter: 0
+  MIME::Base64: 2.21
+  XSLoader: 0
+  parent: 0
+  perl: 5.006
+  strict: 0
+  warnings: 0
+resources:
+  license: http://dev.perl.org/licenses/
+version: 0.008
@@ -1,32 +1,35 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.31012
+# Note: this file was auto-generated by Module::Build::Compat version 0.3603
 require 5.006;
-    
+
     unless (eval "use Module::Build::Compat 0.02; 1" ) {
       print "This module requires Module::Build to install itself.\n";
-      
+
       require ExtUtils::MakeMaker;
       my $yn = ExtUtils::MakeMaker::prompt
 	('  Install Module::Build now from CPAN?', 'y');
-      
+
       unless ($yn =~ /^y/i) {
 	die " *** Cannot install without Module::Build.  Exiting ...\n";
       }
-      
+
       require Cwd;
       require File::Spec;
       require CPAN;
-      
+
       # Save this 'cause CPAN will chdir all over the place.
       my $cwd = Cwd::cwd();
-      
+
       CPAN::Shell->install('Module::Build::Compat');
       CPAN::Shell->expand("Module", "Module::Build::Compat")->uptodate
 	or die "Couldn't install Module::Build, giving up.\n";
-      
+
       chdir $cwd or die "Cannot chdir() back to $cwd: $!";
     }
     eval "use Module::Build::Compat 0.02; 1" or die $@;
     
     Module::Build::Compat->run_build_pl(args => \@ARGV);
+    my $build_script = 'Build';
+    $build_script .= '.com' if $^O eq 'VMS';
+    exit(0) unless(-e $build_script); # cpantesters convention
     require Module::Build;
     Module::Build::Compat->write_makefile(build_class => 'Module::Build');
@@ -36,7 +36,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
 
 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
 Andrew Main (Zefram) <zefram@fysh.org>
 
 The original Eksblowfish code (in the form of crypt()) from which
@@ -1,5 +1,5 @@
 This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.55.
+signed via the Module::Signature module, version 0.61.
 
 To verify the content in this distribution, first make sure you have
 Module::Signature installed, then type:
@@ -15,20 +15,20 @@ not run its Makefile.PL or Build.PL.
 Hash: SHA1
 
 SHA1 0bc3351e37b3dbc594fe80cd16f49aee2a6b17b6 .cvsignore
-SHA1 3935dd4bab29c3f1917233857c73a3099e25d34d Build.PL
-SHA1 63b0108bd52fe40f3e5a8c711c7250f2b26f32f2 Changes
+SHA1 7993422c730b3cbd66e75bf0c7ab08b1043b8eb6 Build.PL
+SHA1 a07be5655476c243f1f100b02a843d8eee359fb6 Changes
 SHA1 84bd916d8a2c3f833fa36df262ef1033a805f606 MANIFEST
-SHA1 93793062b733fe202aac10193ba2b1b2e2be43c4 META.yml
-SHA1 f39315b8e83202006e8a916c6a58725d104f75ec Makefile.PL
-SHA1 c000171bda1db0dbefdfb6a83a5fd0251f63d17c README
+SHA1 63b6e67d8428a570adc8dfe6d031d8d429237653 META.yml
+SHA1 f8469f20cf26bafaffabb905631b945ab0f81289 Makefile.PL
+SHA1 ebbf0cbaf9cac56b0edac0775c3bf13e3959e974 README
 SHA1 1008eae74fc0ed04ffe262cf934bbe7ef3b56c18 lib/Crypt/.cvsignore
-SHA1 8ac477de058b5355a75ad62b342048570de8a9ca lib/Crypt/Eksblowfish.pm
-SHA1 5f67aaf9d6d98a234ed56b94f2a067760d575ad6 lib/Crypt/Eksblowfish.xs
-SHA1 cb48789973e07dd4f5b6a2b11d3510b094b69e1e lib/Crypt/Eksblowfish/Bcrypt.pm
-SHA1 9f00e065883d4db2f88046ce9928e05cf9134f32 lib/Crypt/Eksblowfish/Blowfish.pm
-SHA1 88d301a63a8bab27ed5a92688df275f749a6ed05 lib/Crypt/Eksblowfish/Family.pm
-SHA1 52b9872b8571da2cdcdbc214d6c02a16c5009b57 lib/Crypt/Eksblowfish/Subkeyed.pm
-SHA1 32aca51d3e13b83b14924e061a22699dcfa7ca8d lib/Crypt/Eksblowfish/Uklblowfish.pm
+SHA1 6813ff7ddc5b2bc24bf269fb1c391aa7794fb177 lib/Crypt/Eksblowfish.pm
+SHA1 665e5d44550cdd82a87b0d9c5d2c18bc18c9eece lib/Crypt/Eksblowfish.xs
+SHA1 beaf93583713b76d341436973ac679981717bbc9 lib/Crypt/Eksblowfish/Bcrypt.pm
+SHA1 f2929098a5a8e60ad9034cac5c9ae5b859cbce1b lib/Crypt/Eksblowfish/Blowfish.pm
+SHA1 0f024a713d9fd2e57ee691dba837314398b03782 lib/Crypt/Eksblowfish/Family.pm
+SHA1 9aea04b43961955bb23a2061e5e0d50cabdf37f0 lib/Crypt/Eksblowfish/Subkeyed.pm
+SHA1 686ebeb4b1d891f48cee4623953ce56defa93ea5 lib/Crypt/Eksblowfish/Uklblowfish.pm
 SHA1 4ad6608276c06b7df4a493bafa06795ecbec7f91 t/base64.t
 SHA1 22879b7c32306921b426a16eb38ee783c28b49db t/bcrypt.t
 SHA1 ab642bf302d854ce2d3dd6b2ac157c048958d924 t/bcrypt_hash.t
@@ -40,11 +40,11 @@ SHA1 74a957cd8b93f25672ecc6aa578a671d084dd343 t/pod_syn.t
 SHA1 8ef086a24068f32855e337e6a9d493135785f883 t/subkey.t
 SHA1 7892bb05837bab222dbf3ba93d4fb076dc5ad586 t/uklblowfish.t
 SHA1 b26fdaaf35efc7d7de03610e1d0c72f18b9c8137 t/utf8.t
-SHA1 5e13bdba880b83ac5a1d5c5f64994977b8af998d typemap
+SHA1 7ad478ba2f46a8291fd098976ea1cebc39db5971 typemap
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.9 (GNU/Linux)
 
-iEYEARECAAYFAknvhioACgkQOV9mt2VyAVFg1gCgjbitqOk/UYKxd3CF8qAyOXdP
-rvkAnizD74hfwDeuigLS7794LD3kdfdY
-=IIUc
+iEYEARECAAYFAkuZRmUACgkQOV9mt2VyAVEreQCfQuFrg4r4epQt/3tUtSEiOknn
+Fr8AnjCgz/iMTMgDZoAi3BhB4Vl9C6XY
+=L1Rz
 -----END PGP SIGNATURE-----
@@ -34,6 +34,7 @@ L<http://www.usenix.org/events/usenix99/provos.html>.
 
 package Crypt::Eksblowfish::Bcrypt;
 
+{ use 5.006; }
 use warnings;
 use strict;
 
@@ -41,7 +42,7 @@ use Carp qw(croak);
 use Crypt::Eksblowfish 0.005;
 use MIME::Base64 2.21 qw(encode_base64 decode_base64);
 
-our $VERSION = "0.007";
+our $VERSION = "0.008";
 
 use parent "Exporter";
 our @EXPORT_OK = qw(bcrypt_hash en_base64 de_base64 bcrypt);
@@ -176,7 +177,7 @@ Andrew Main (Zefram) <zefram@fysh.org>
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
 Andrew Main (Zefram) <zefram@fysh.org>
 
 =head1 LICENSE
@@ -39,10 +39,11 @@ original Blowfish.
 
 package Crypt::Eksblowfish::Blowfish;
 
+{ use 5.006; }
 use warnings;
 use strict;
 
-our $VERSION = "0.007";
+our $VERSION = "0.008";
 
 use parent "Crypt::Eksblowfish::Subkeyed";
 
@@ -139,7 +140,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
 Andrew Main (Zefram) <zefram@fysh.org>
 
 The original Eksblowfish code (in the form of crypt()) from which
@@ -67,6 +67,7 @@ method L</as_class>.
 
 package Crypt::Eksblowfish::Family;
 
+{ use 5.006; }
 use warnings;
 use strict;
 
@@ -74,7 +75,7 @@ use Carp qw(croak);
 use Crypt::Eksblowfish 0.005;
 use Class::Mix 0.001 qw(genpkg);
 
-our $VERSION = "0.007";
+our $VERSION = "0.008";
 
 =head1 CONSTRUCTOR
 
@@ -206,7 +207,7 @@ Andrew Main (Zefram) <zefram@fysh.org>
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
 Andrew Main (Zefram) <zefram@fysh.org>
 
 =head1 LICENSE
@@ -66,12 +66,13 @@ non-randomness in the choice of the key.
 
 package Crypt::Eksblowfish::Subkeyed;
 
+{ use 5.006; }
 use warnings;
 use strict;
 
 use XSLoader;
 
-our $VERSION = "0.007";
+our $VERSION = "0.008";
 
 XSLoader::load("Crypt::Eksblowfish", $VERSION);
 
@@ -178,7 +179,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
 Andrew Main (Zefram) <zefram@fysh.org>
 
 The original Eksblowfish code (in the form of crypt()) from which
@@ -70,10 +70,11 @@ cryptanalytic reasons.
 
 package Crypt::Eksblowfish::Uklblowfish;
 
+{ use 5.006; }
 use warnings;
 use strict;
 
-our $VERSION = "0.007";
+our $VERSION = "0.008";
 
 use parent "Crypt::Eksblowfish::Subkeyed";
 
@@ -163,7 +164,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
 Andrew Main (Zefram) <zefram@fysh.org>
 
 The original Eksblowfish code (in the form of crypt()) from which
@@ -43,10 +43,11 @@ for a way to encapsulate an Eksblowfish cipher family.
 
 package Crypt::Eksblowfish;
 
+{ use 5.006; }
 use warnings;
 use strict;
 
-our $VERSION = "0.007";
+our $VERSION = "0.008";
 
 use parent "Crypt::Eksblowfish::Subkeyed";
 
@@ -139,7 +140,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009
+Copyright (C) 2006, 2007, 2008, 2009, 2010
 Andrew Main (Zefram) <zefram@fysh.org>
 
 The original Eksblowfish code (in the form of crypt()) from which
@@ -663,7 +663,7 @@ CODE:
 	Safefree(ks);
 
 Crypt::Eksblowfish::Subkeyed
-new_from_subkeys(SV *class, SV *parray_sv, SV *sboxes_sv)
+new_from_subkeys(SV *classname, SV *parray_sv, SV *sboxes_sv)
 PREINIT:
 	AV *parray, *sboxes;
 	int i, j;
@@ -718,7 +718,7 @@ OUTPUT:
 	RETVAL
 
 Crypt::Eksblowfish::Subkeyed
-new_initial(SV *class)
+new_initial(SV *classname)
 CODE:
 	Newx(RETVAL, 1, BF_key_schedule);
 	memcpy(RETVAL, &BF_init_state, sizeof(BF_init_state));
@@ -728,7 +728,7 @@ OUTPUT:
 MODULE = Crypt::Eksblowfish PACKAGE = Crypt::Eksblowfish
 
 Crypt::Eksblowfish
-new(SV *class, unsigned cost, SV *salt_sv, SV *key_sv)
+new(SV *classname, unsigned cost, SV *salt_sv, SV *key_sv)
 PREINIT:
 	STRLEN salt_len, key_len;
 	U8 *salt_octets, *key_octets;
@@ -759,7 +759,7 @@ OUTPUT:
 MODULE = Crypt::Eksblowfish PACKAGE = Crypt::Eksblowfish::Blowfish
 
 Crypt::Eksblowfish::Blowfish
-new(SV *class, SV *key_sv)
+new(SV *classname, SV *key_sv)
 PREINIT:
 	STRLEN key_len;
 	U8 *key_octets;
@@ -779,7 +779,7 @@ OUTPUT:
 MODULE = Crypt::Eksblowfish PACKAGE = Crypt::Eksblowfish::Uklblowfish
 
 Crypt::Eksblowfish::Uklblowfish
-new(SV *class, SV *key_sv)
+new(SV *classname, SV *key_sv)
 PREINIT:
 	STRLEN key_len;
 	U8 *key_octets;
@@ -25,5 +25,6 @@ T_BF_BLOCK
 	{
 		U8 bfb_octets[8];
 		export_block($var, (unsigned char *)bfb_octets);
-		$arg = newSVpvn((char*)bfb_octets, 8);
+		sv_setpvn($arg, (char*)bfb_octets, 8);
+		SvUTF8_off($arg);
 	}